我在Visual Studio 2013中有一个解决方案,我在后期构建事件中使用xcopy将必要的文件复制到bin\Debug
文件夹中。 post build事件工作正常,当我在visual studio中运行应用程序时,应用程序可以找到复制到bin\Debug
文件夹的必要文件。
xcopy "$(SolutionDir)packages\NUnit.Runners.2.6.3\*.*" "$(OutDir)..\..\NUnitRunners\" /E /I /Y /F
xcopy "$(SolutionDir)ProductionSmoke\bin\Debug\ProductionSmoke.exe" "$(OutDir)..\..\" /E /I /Y /F
xcopy "$(SolutionDir)ProductionSmoke\bin\Debug\ProductionSmoke.exe.config" "$(OutDir)..\..\" /E /I /Y /F
但是,当我使用ClickOnce发布解决方案时,应用程序会抛出一个无法找到文件的异常。
private void buttonProductionSmoke_Click(object sender, EventArgs e)
{
var pathToNunitGui = AppDomain.CurrentDomain.BaseDirectory + "NUnitRunners\\tools\\nunit.exe";
var pathToProductionSmoke = AppDomain.CurrentDomain.BaseDirectory + "ProductionSmoke.exe";
Process.Start(pathToNunitGui, pathToProductionSmoke);
}
我查看了User\AppData\
文件夹,但在任何地方都看不到bin\Release
文件夹。
如何为程序提供文件路径,以便在使用ClickOnce部署后可以访问它们?
答案 0 :(得分:1)
特定配置文件夹下面会有一个“app.publish”目录。该文件夹将包含“.application”文件和“Application Files”文件夹。在“Application Files”文件夹中,您将找到包含主二进制文件和特定二进制文件的特定于版本的文件夹。
文件夹的版本号取决于AssemblyInfo.cs文件的AssemblyVersion。您应该查看Continuous Integration,MSBuild,NAnt等,以动态更新此文件以反映正确的版本。