2017-03-01 115 views
1

對於某個項目,我需要創建包含圖像的不同NuGet包。然後,我需要在項目中安裝這些軟件包並將這些圖像放在窗體中。這一切都很順利。從圖像資源引用VS 2015中的packages文件夾中的圖像

我的問題是,當我簽出Git中的另一個分支並執行包恢復時,出於某種原因,Visual Studio無法找到表單中使用的圖像。對於它的工作,我需要在下面的命令在解決方案級別手動鍵入:

Update-Package Reinstall 

我這樣做後,一切又建設。問題是,我不想每次在Git中切換分支時都這樣做。我已經看過,如果Visual Studio解決了這個問題,但我能找到的只有這個:Linked and Embedded Resources

我希望當我執行程序包還原時,Visual Studio將對該圖像的引用進行替換,因此在程序包恢復後它會始終識別圖像。我的問題:這是否可能,如果是,如何?

我希望你有足夠的信息能夠回答這個問題。謝謝!


編輯: 好了,讓我在這裏改一下這個問題。當我恢復軟件包時,它只會恢復\packages\文件夾中的文件。這意味着,當我在本地克隆存儲庫時,項目資源文件夾中沒有任何內容,因爲我在.gitignore映像中說過應該忽略它。所以當我恢復它不會更新\packages\文件夾。 這就是爲什麼我想要在那裏引用\packages\文件夾,在資源文件夾內。

例如:

包Package1.1.0.0中有一個圖像。稱爲Img1。當我安裝軟件包時,它將圖像保存在以下路徑下。

\packages\Package1.1.0.0.\Resources\Icons\Img1.png 

\包是解決方案下的文件夾中。

在我安裝包的項目中,還有一個Img1。該圖像保存在這裏:

\project\Resources\Icons\Img1.png 

項目被保存在解決方案下面。

現在,我希望Img1.png不包含文件本身,而是對包文件夾中的Img1.png的引用。另外,當我將包更新到版本1.0.1時,我希望Visual Studio仍然正確地引用Img1.png。


編輯:

好了,所以我做了一些環顧四周,我發現我的確切問題的NuGet GitHub的頁面上的問題:https://github.com/NuGet/Home/issues/2895

+0

如果你確切的問題與GitHub上的問題相同,我建議你可以更新你的提問或刪除它,然後在GitHub頁面上添加評論,這對其他社區是有益的。清除您的問題並輕鬆找到答案。謝謝。 –

回答

0

如果我理解它是正確的,表單中的圖像應該使用相應的包文件夾的相對路徑來引用。例如

/Packages/Package1/Images/Img1。png

以這種方式,即使在新分支中,一旦軟件包在軟件包文件夾中恢復並可用,它們也應該能夠得到解決。

只是爲了確保圖像路徑正確設置在窗體中。

+0

我以爲我想回復,但後來我想到一個可能的解決方案,不小心按下輸入,所以是... – iPhantomGuy

+0

好的。那麼如果你可以更新你的問題或者在你的解決方案中添加一個答案,那麼可能會對你有幫助。 –

+0

我編輯了原始文章,希望這可以更好地闡明它。 – iPhantomGuy

0

如果您的問題是「當我執行軟件包還原時,Visual Studio會替換對該映像的引用,因此它會在程序包還原之後始終識別映像。

就像您的評論一樣,當您將軟件包從1.1.0.0更新到軟件包1.1.0.1時,舊軟件包1.1.0.0將被刪除,並且參考也將被中斷。因此,需要在解決方案級別手動鍵入以下命令:

Update-Package Reinstall 

如果你想更新包1.0.1版本,和Visual Studio仍然正常有參考Img1.png,你可以包這個IMG1 .png單獨打包,而不是將其包含在軟件包1.1.0.0中。在這種情況下,當你將包1.1.0.0更新到1.1.0.1時不會破壞包的引用Img1.png