如何在编译后读取.csproj中的AssemblyFileVersion或其组件AssemblyFileMajorVersion,AssemblyFileMinorVersion,AssemblyFileBuildNumber,AssemblyFileRevision?
我尝试了以下从构建的程序集中提取信息:
<Target Name="AfterCompile">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output
TaskParameter="Assemblies"
ItemName="MyAssemblyIdentities"/>
</GetAssemblyIdentity>
<Message Text="AssemblyVersion = %(MyAssemblyIdentities.Version)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
但是,它检索AssemblyVersion而不是AssemblyFileVersion.对于后者,似乎没有记录的元数据条目.我也尝试过:
<Import Project="$(MSBuildExtensionsPath)\ExtensionPack\MSBuild.ExtensionPack.tasks" />
<Target Name="AfterCompile">
<MSBuild.ExtensionPack.Framework.Assembly TaskAction="GetInfo" NetAssembly="$(TargetPath)">
<Output TaskParameter="OutputItems" ItemName="Info" />
</MSBuild.ExtensionPack.Framework.Assembly>
<Message Text="AssemblyFileVersion = %(Info.FileVersion)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
不幸的是,虽然这会检索正确的值,但它也会锁定程序集,直到VS2008关闭.
坦率地说,我不想要什么,因为我宁愿直接从AssemblyInfo.cs读取信息.但是,我无法弄清楚如何做到这一点.我假设MSBuild Extensions中的AssemblyInfo是一种方式,但它似乎专注于写入AssemblyInfo而不是从中检索值.
我怎样才能最好地完成这个?
使用报告的MIME类型上载某些文件:
image/x-citrix-pjpeg
Run Code Online (Sandbox Code Playgroud)
它们是有效的jpeg文件,我接受它们.
我想知道:为什么MIME类型不同?
格式有什么不同吗?或者这种mimetype是由Citrix的一些灯泡发明的,没有明显的原因?
我正在使用JSON.NET来为不同目的序列化和反序列化对象.我是DI的忠实粉丝,但下面的代码让我感到寒意.闻起来像坏代码:
public class Foo : Baz
{
private readonly IBar bar;
public Foo()
: this(ObjectFactory.GetInstance<IBar>())
{ }
public Foo(IBar bar)
{
if (bar == null)
throw new ArgumentNullException("bar");
this.bar = bar;
}
... rest of class ...
}
Run Code Online (Sandbox Code Playgroud)
默认构造函数是让我发冷的东西.我添加了这个来支持JSON.NET引起的反序列化:
string jsonString = ...;
string concreteBazType = ...;
Baz baz = (Baz)JsonConvert.DeserializeObject(jsonString, Type.GetType(concreteBazType);
Run Code Online (Sandbox Code Playgroud)
请注意,类Foo继承自抽象基类Baz!
我向你们提出的问题DI和JSON.NET极客:如何改变代码以避免默认构造函数在类Foo中给出的代码味道?
我有一个JScrollpane,有一个JPanel在里面(与面板包含一些JLabelS).
我想调整滚动窗格的大小以实际更改其大小(可能低于内部组件的首选大小),而不仅仅是视口的大小.
目标是当用户缩小滚动窗格太小时,内部面板优雅地消失(使用我的miglayout中的特定缩小优先级等).
关于存储数据及其内存占用,我有一个非常基本的问题.
我有一个List<t>存储我需要的基础对象.类型t有一个int id来定义它,以及其他字段.
我现在有一本词典.如果我创建了一个Dictionary<t, int>,其中t是值的对象,那么内存分配是否会高得多,如果我创建了一个Dictionary<int, int>,即存储了t对象的副本,或者只是再次存储了refence?
谢谢
有没有办法让Decimal.TryParse将字符串值"0.0"或"00.00"或"000.000"解析为0?
我已经尝试将NumberStyles设置为Any.
显然,我们不想在每个脚本中对明文密码进行硬编码.这会使密码循环变得困难,因为除了密码首先是明文密码之外,还需要更改大量的脚本.
如果脚本将密码作为参数,那么我们需要担心修改'ps'输出以不显示密码参数的值.我们还必须担心shell历史记录中记录的命令.这可以通过bash上的HISTIGNORE/HISTCONTROL来处理,但是还有其他shell在使用时具有不同且灵活性较差的控件(例如:zsh).我们还可以使用特定于命令行的环境变量(FOO = bar ./script),而'FOO = bar'不会显示在'ps'中,默认情况下,它仍会记录到shell历史记录中.此外,一些系统无论如何都会暴露其他用户的过程环境(通过'ps').
可以使用密码(配置)文件来简单地存储明文密码.该文件可以拥有/许可,以加强其访问权限.但是,在一天结束时,您仍然有明文密码.
提示也是一种选择,但这往往不那么方便(例如,仍然可以通过预期),并且如果脚本需要,则使非交互性变得复杂.
可以使用某些风格的加密,但是我们仍然有类似的问题来处理解密密钥.
我应该选择以上其中一种吗?其他选择可能更优越吗?人们如何处理这种情况是一种安全的方式?
这里的一般目标是,如果攻击者以某种方式进入使用数据库服务器的系统,则攻击者不应该能够组成数据库服务器.例如,攻击不应该只是找到位于某处的密码,不应该观察系统('ps')来发现它,并且不应该"回顾过去" (shell历史)找到它.
我完善意识到有数百万个场景(kmem,交换页面等等等),并且如果攻击者获得root或物理访问并且没有任何东西是100%安全的话,那么大多数赌注都会被关闭.我只是在寻找合理的最佳方法.:-)
我想在asp.net中扩展IPrincipal以允许我获得我将定义的usertype.我想在控制器中做到这一点
string type = User.UserType
Run Code Online (Sandbox Code Playgroud)
然后在我的扩展方法中,我将有一个方法,如
public string UserType()
{
// do some database access
return userType
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?可能吗?谢谢!
我正在尝试创建一个格式化美国电话号码的功能 - 希望不会遍历每个数字.
全部通过10位数就可以了.但是,当传递超过10位数字时,我希望String.Format方法在右侧附加扩展数字.例如:
当结果中传入的14位数字应该是:(444)555-2222 x8888当结果中传递的12位数应该是:(444)555-2222 x88等.但是我当前尝试得到的是:传入12位数字返回此字符串'() - 949 x555444433'
这是我到目前为止所拥有的.
public static string _FormatPhone(object phonevalue)
{
Int64 phoneDigits;
if (Int64.TryParse(phonevalue.ToString(), out phoneDigits))
{
string cleanPhoneDigits = phoneDigits.ToString();
int digitCount = cleanPhoneDigits.Length;
if (digitCount == 10)
return String.Format("{0:(###) ###-####}", phoneDigits);
else if (digitCount > 10)
return String.Format("{0:(###) ###-#### x#########}", phoneDigits);
else
return cleanPhoneDigits;
}
return "Format Err#";
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
在我的场景中,我想在单独的AppDomain中执行一个方法.我可以采取多少种不同的方法来实现这一目标?
特别是,我有以下问题:
.net ×5
c# ×5
assemblies ×1
citrix ×1
inheritance ×1
interface ×1
iprincipal ×1
java ×1
jpeg ×1
jscrollpane ×1
json ×1
json.net ×1
linux ×1
miglayout ×1
mime-types ×1
msbuild ×1
mysql ×1
security ×1
string ×1
swing ×1
versioning ×1