在csproj中使用appdata环境变量(Use appdata environment variable in csproj)
我试图在我的csproj文件中使用appdata,只有当其他开发人员在调试模式下运行时才将许可文件复制到appdata。
这是我在csproj文件的after build部分尝试的内容:
<ItemGroup Condition="'$(Configuration)' == 'Debug'"> <LicenseFile Include="..\..\..\..\utilities\FlexNet\Glass_Debug.lic"/> </ItemGroup> <Copy SourceFiles="@(LicenseFile)" DestinationFiles="@(LicenseFile->'$(%AppData%)\CompanyName\SeismicInterpretation\%(Filename)%(Extension)')" />
我没有收到错误,项目构建和运行正常,除了它不会将许可证文件复制到我的appdata文件夹。
有任何想法吗?
I am trying to use appdata in my csproj file to copy a license file to appdata only when other devs are running in debug mode.
This is what I am trying in the after build section of the csproj file:
<ItemGroup Condition="'$(Configuration)' == 'Debug'"> <LicenseFile Include="..\..\..\..\utilities\FlexNet\Glass_Debug.lic"/> </ItemGroup> <Copy SourceFiles="@(LicenseFile)" DestinationFiles="@(LicenseFile->'$(%AppData%)\CompanyName\SeismicInterpretation\%(Filename)%(Extension)')" />
I am not getting an error and the project builds and runs fine except it does not copy the license file to my appdata folder.
Any ideas?
最满意答案
尝试使用
$(AppData)
。 MSBuild使环境变量可用作标准MSBuild属性。Try just using
$(AppData)
. MSBuild makes Environment Variables available as standard MSBuild properties.
相关问答
更多-
这些调用不会返回错误的路径。 它们返回运行应用程序的用户的AppData\Roaming路径,即LocalService用户。 如果要访问其他用户的AppData,请将服务配置为在要读取或写入其配置文件的用户下运行,或者选择其他目录并确保该服务具有写入该权限的权限 - 但您确实应该这样做写在另一个用户的目录中。 These calls don't return the wrong path. They return the AppData\Roaming path of the user under whi ...
-
简单的回答,你不能。 当您像这样链接时,当前目录看起来像root /到html。 因此,您可以查看当前目录的子文件夹(您不能保证知道,因为它可能在不同的操作系统或甚至每个用户配置上有所不同),但这对您没有帮助。 此项目将允许您通过添加“ 高级”选项卡来编辑电子邮件的实际HTML,但即使完全控制HTML,也无法完成。 “这将打开一个像丹佛一样大小的安全漏洞。” 这里有很多关于相对寻址的质量信息,这正是你想要做的。 Simple answer, you can't. When you're linking li ...
-
使用%APPDATA%环境变量: Set wshShell = CreateObject("WScript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") appData = wshShell.ExpandEnvironmentStrings("%APPDATA%") strFolder = fso.BuildPath(appData, "Microsoft\AddIns") 始终使用BuildPath方法构建路径。 你从代码中 ...
-
尝试使用$(AppData) 。 MSBuild使环境变量可用作标准MSBuild属性。 Try just using $(AppData). MSBuild makes Environment Variables available as standard MSBuild properties.
-
我认为你不应该使用用户名来获取用户配置文件目录的路径。 目录名称可以与用户名称不同 - 例如,在创建配置文件后更改用户名hsa或者存在用户名冲突(本地用户具有与域用户相同的用户名)时。 您可以使用以下语法为C:\Users每个子目录执行AppData\Roaming目录: for /d %A in (C:\Users\*) do if exist %A\AppData\Roaming dir %A\AppData\Roaming 但是,此解决方案将再次省略存储在C:\ Users之外的任何用户配置文件。 ...
-
这样做: for /F "tokens=*" %%A in (.\a.config) do ( call echo "%%A" call copy /y "%%A" . ) 为了节省必须在使用%% A的每行前输入call ,可以将其分配给一个变量: setlocal enabledelayedexpansion for /F "tokens=*" %%A in (.\a.config) do ( call set expandedA=%%A echo "!expandedA!" cop ...
-
扩张并不像你希望的那样发挥作用。 您需要使用另一个FOR-Loop来替换变量。 附加循环将变量var复制到参数%%V @echo OFF setlocal EnableDelayedExpansion set "notToChange=APPDATA PATH notToChange" for /f "delims=" %%i in ('set') do ( for /f "delims==" %%j in ("%%i") do ( set "var=%%j" ) ...
-
我也遇到过这个问题并看了你的问题,但我乍一看并没有找到答案。 这是Mohit shah答案 “我发现通过在配置文件”LocalSystem“下运行服务,无法从Windows服务获取用户appdata路径。所以我使用了Environment.SpecialFolder.CommomAppData,它在Windows 7上运行时为我提供应用程序数据路径C:\ ProgramData在Windows服务中使用相同的东西,它也提供相同的路径,我也在配置文件“LocalSystem”下运行服务,所以它没有提示我输入凭 ...
-
为什么%appdata%和其他变量在窗口的gui中不可见(Why is %appdata% and other variable not visible in window's gui)[2022-05-02]
Windows将以下用户特殊文件夹的位置存储在以下注册表项下: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders 常见的特殊文件夹在HKEY_LOCAL_MACHINE下的相同路径中指定: HKEY_LOCAL MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders 至于为什么它们 ... -
节点从%appdata%读取文件(Node Read File From %appdata%)[2022-12-23]
您必须从process.env获取值: fileData = fs.readFileSync(process.env.APPDATA + '/folder/file.txt',{encoding:'utf8'}); You have to get the value from process.env instead: fileData = fs.readFileSync(process.env.APPDATA + '/folder/file.txt',{encoding:'utf8'});