我正在写一个ant脚本(是的,我知道我们在2020年(来构建一个c#解决方案。这个解决方案有许多项目与之相关,在大多数情况下,我可以让解决方案中的每个项目都使用以下蚂蚁任务来构建(由于程序的敏感性,名称被混淆(:
<target name="MyProject1" description="Build MyProject1">
<exec executable="${msbuild}">
<arg value="MySolution.sln /t:MyProject1:Rebuild /p:Configuration=Release" />
</exec>
</target>
正如我所提到的,这适用于我的大多数项目,但我有一个项目有一个resx
文件,我得到了错误Couldn't process file resx due to its being in the Internet or Restricted zone or having the mark of the web on the file
我确实遇到了这个解决方案
无法';t处理文件resx,因为它位于Internet或受限区域,或者文件上有web标记
它谈到了通过powershell运行文件,所以我将其添加到我的目标:
<exec executable="powershell">
<arg value="get-childitem MyResource.resx | unblock-file" />
</exec>
但这似乎并不奏效,也出现了同样的错误。
所以我的问题是,我是否可以在批处理文件中运行另一个命令,作为msbuild的切换,或者在ant中运行一个解锁文件的任务。所有其他建议都是手动编辑文件,这必须是自动化的。
这个文件是从一个我无法触摸的cm位置拉进来的,因此我无法将锁取下并放回。我可以要求有权更改文件的人,但这需要国会的行动(字面上(。
ant脚本背后的想法是,任何开发人员都可以在我们的任何windows开发机器上运行它,并在不需要经过visualstudio的情况下构建软件。
在尝试了以下所有解决方案后:
- C#无法';t处理文件xxx.resx,因为该文件位于Internet或受限区域,或者文件上有web标记
- OneDrive-Visual Studio 2019-无法';由于文件Form1.resx位于Internet或受限区域,无法处理该文件
但仍然无法正常工作,我最终将嵌入的图像转换为.png文件,并在.resx中创建了该文件的链接。Visual studio只需点击2次即可完成,正如我在原始评论中所描述的:https://stackoverflow.com/a/71799430/15001063