C# 从图像资源引用到VS 2015中packages文件夹中的图像

C# 从图像资源引用到VS 2015中packages文件夹中的图像,c#,git,visual-studio-2015,nuget,nuget-package-restore,C#,Git,Visual Studio 2015,Nuget,Nuget Package Restore,对于某个项目,我需要创建包含图像的不同NuGet包。然后,我需要在项目中安装这些软件包,并将图像放入表单中。一切进展顺利 我的问题是,当我签出到Git中的另一个分支并执行包还原时,由于某种原因Visual Studio无法找到表单中使用的图像。要使其工作,我需要在解决方案级别手动键入以下命令: Update-Package Reinstall 在我做了这件事之后,一切又恢复了。问题是,我不想每次在Git中切换分支时都这样做。我已经看过VisualStudio是否有解决此问题的方法,但我能找到的

对于某个项目,我需要创建包含图像的不同NuGet包。然后,我需要在项目中安装这些软件包,并将图像放入表单中。一切进展顺利

我的问题是,当我签出到Git中的另一个分支并执行包还原时,由于某种原因Visual Studio无法找到表单中使用的图像。要使其工作,我需要在解决方案级别手动键入以下命令:

Update-Package Reinstall
在我做了这件事之后,一切又恢复了。问题是,我不想每次在Git中切换分支时都这样做。我已经看过VisualStudio是否有解决此问题的方法,但我能找到的只有以下内容:

我希望在执行包还原时,VisualStudio会替换对图像的引用,以便在包还原后它始终能够识别图像。我的问题是:这可能吗?如果可能,怎么可能

我希望你有足够的信息来回答这个问题。谢谢


编辑: 好吧,让我重新表述一下这个问题。当我还原包时,它只还原
\packages\
文件夹中的文件。这意味着,当我在本地克隆存储库时,projectresources文件夹中没有任何内容,因为我在.gitignore中说过应该忽略图像。因此,当我还原时,它不会更新
\packages\
文件夹。 这就是为什么我希望在参考资料文件夹中有对
\packages\
文件夹的引用

例如:

软件包1.1.0.0中有一个映像。称为Img1。当我安装软件包时,它会将映像保存在以下路径下

\packages\Package1.1.0.0.\Resources\Icons\Img1.png
\packages是解决方案下面的文件夹

在我安装包的项目中,还有一个Img1。该图像保存在此处:

\project\Resources\Icons\Img1.png
项目保存在解决方案下面

现在,我希望Img1.png不包含文件本身,而是包含对packages文件夹中Img1.png的引用。另外,当我将包更新到版本1.0.1时,我希望Visual Studio仍然正确地引用Img1.png


编辑:


好的,我四处看了看,发现我的确切问题是NuGet的GitHub页面上的一个问题:

如果我理解正确,表单中的图像应该使用相应包文件夹的相对路径引用。e、 g

/软件包/Package1/Images/Img1.png

通过这种方式,即使在新分支中,只要包恢复并在packages文件夹中可用,它们也应该能够得到解决


只是为了确保检查表单中的图像路径设置是否正确。

如果我理解正确,则应使用相应文件包文件夹的相对路径引用表单中的图像。e、 g

/软件包/Package1/Images/Img1.png

通过这种方式,即使在新分支中,只要包恢复并在packages文件夹中可用,它们也应该能够得到解决

只是为了确保检查表单中是否正确设置了图像路径。

如果您的问题是“当我执行包还原时,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

如果您的问题是“当我执行包还原时,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的引用。我本想回复,但后来我想到了一个可能的解决方案,意外地按了enter,所以是的……好的。如果你能更新你的问题或在你的解决方案中添加答案,可能会对某人有所帮助。我编辑了原始帖子,希望这能更好地澄清问题。另外,有了你的答案,我将无法将软件包更新到新版本,因为文件夹看起来是这样的:
/packages/package1.1.0.0/Images/Img1.png
。1.0.0. 是包的版本。当我更新我的包时,它会创建一个新文件夹:
/packages/package1.1.0.1/
,并删除旧文件夹,使对映像的引用无法读取。这可能对您的情况有所帮助。我以为我想回复,但后来我想到了一个可能的解决方案,不小心按了回车键,所以是的……好的。如果你能更新你的问题或在你的解决方案中添加答案,可能会对某人有所帮助。我编辑了原始帖子,希望这能更好地澄清问题。另外,有了你的答案,我将无法将软件包更新到新版本,因为文件夹看起来是这样的:
/packages/package1.1.0.0/Images/Img1.png
。1.0.0. 是包的版本。当我更新包时,它会生成一个新文件夹:
/packages/package1.1.0。